package com.ourteam.product.requirement.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:35
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductIssueChangeLogDAOQueryBean extends BaseQueryBean {
    public ProductIssueChangeLogDAOQueryBean() {
        super();
    }

    public ProductIssueChangeLogDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductIssueChangeLogDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.Id, "id");
        }
    }

    public void addProducrIssueIdSelectProperty() {
        addProducrIssueIdSelectProperty("producrIssueId");
    }

    public void addProducrIssueIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.ProducrIssueId, aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.ProducrIssueId,
                "producrIssueId");
        }
    }

    public void addBeforeChangeStatusSelectProperty() {
        addBeforeChangeStatusSelectProperty("beforeChangeStatus");
    }

    public void addBeforeChangeStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.BeforeChangeStatus,
                aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.BeforeChangeStatus,
                "beforeChangeStatus");
        }
    }

    public void addAfterChangeStatusSelectProperty() {
        addAfterChangeStatusSelectProperty("afterChangeStatus");
    }

    public void addAfterChangeStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.AfterChangeStatus,
                aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.AfterChangeStatus,
                "afterChangeStatus");
        }
    }

    public void addOperatorIdSelectProperty() {
        addOperatorIdSelectProperty("operatorId");
    }

    public void addOperatorIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.OperatorId, aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.OperatorId, "operatorId");
        }
    }

    public void addOperateTimeSelectProperty() {
        addOperateTimeSelectProperty("operateTime");
    }

    public void addOperateTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.OperateTime, aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.OperateTime,
                "operateTime");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.Remarks, "remarks");
        }
    }

    public void addOperatorNameSelectProperty() {
        addOperatorNameSelectProperty("operatorName");
    }

    public void addOperatorNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.OperatorName, aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.OperatorName,
                "operatorName");
        }
    }

    public void addOperatorPhotoSelectProperty() {
        addOperatorPhotoSelectProperty("operatorPhoto");
    }

    public void addOperatorPhotoSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductIssueChangeLogDAO.OperatorPhoto, aAlias);
        } else {
            addSelectProperty(IProductIssueChangeLogDAO.OperatorPhoto,
                "operatorPhoto");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addProducrIssueIdSelectProperty();

        addBeforeChangeStatusSelectProperty();

        addAfterChangeStatusSelectProperty();

        addOperatorIdSelectProperty();

        addOperateTimeSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addOperatorNameSelectProperty();

        addOperatorPhotoSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductIssueChangeLogDAOQueryBean> {
        protected Criteria(ProductIssueChangeLogDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductIssueChangeLogDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.Id + " is not null AND " +
                IProductIssueChangeLogDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.Id + " is null OR " +
                IProductIssueChangeLogDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Id + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.Id + " is null OR " +
                IProductIssueChangeLogDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Id + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Id + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Id + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Id + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Id + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.Id + " not in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.Id + " not in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Id + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Id + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductIssueChangeLogDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueChangeLogDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueChangeLogDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueChangeLogDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andProducrIssueIdIsNull() {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " is null");

            return this;
        }

        public Criteria andProducrIssueIdIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId +
                " is not null");

            return this;
        }

        public Criteria andProducrIssueIdIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId +
                " is not null AND " + IProductIssueChangeLogDAO.ProducrIssueId +
                " <> ''");

            return this;
        }

        public Criteria andProducrIssueIdIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.ProducrIssueId +
                " is null OR " + IProductIssueChangeLogDAO.ProducrIssueId +
                " = '')");

            return this;
        }

        public Criteria andProducrIssueIdEqualTo(long value) {
            return andProducrIssueIdEqualTo(Long.valueOf(value));
        }

        public Criteria andProducrIssueIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " = ",
                value, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.ProducrIssueId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProducrIssueIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProducrIssueIdNotEqualTo(long value) {
            return andProducrIssueIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andProducrIssueIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " <>",
                value, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdNotEqualToOrIsNull(long value) {
            return andProducrIssueIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andProducrIssueIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId +
                " is null OR " + IProductIssueChangeLogDAO.ProducrIssueId +
                " <>", value, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.ProducrIssueId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProducrIssueIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProducrIssueIdGreaterThan(long value) {
            return andProducrIssueIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andProducrIssueIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " >",
                value, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.ProducrIssueId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProducrIssueIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProducrIssueIdGreaterThanOrEqualTo(long value) {
            return andProducrIssueIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProducrIssueIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " >=",
                value, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.ProducrIssueId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProducrIssueIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProducrIssueIdLessThan(long value) {
            return andProducrIssueIdLessThan(Long.valueOf(value));
        }

        public Criteria andProducrIssueIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " <",
                value, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.ProducrIssueId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProducrIssueIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProducrIssueIdLessThanOrEqualTo(long value) {
            return andProducrIssueIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andProducrIssueIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " <=",
                value, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.ProducrIssueId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andProducrIssueIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProducrIssueIdIn(long[] values) {
            if (values.length == 1) {
                return andProducrIssueIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " in",
                    values, "producrIssueId");

                return this;
            }
        }

        public Criteria andProducrIssueIdNotIn(long[] values) {
            if (values.length == 1) {
                return andProducrIssueIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.ProducrIssueId +
                    " not in", values, "producrIssueId");

                return this;
            }
        }

        public Criteria andProducrIssueIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProducrIssueIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " in",
                    values, "producrIssueId");

                return this;
            }
        }

        public Criteria andProducrIssueIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andProducrIssueIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.ProducrIssueId +
                    " not in", values, "producrIssueId");

                return this;
            }
        }

        public Criteria andProducrIssueIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProducrIssueIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " in",
                    Arrays.asList(values), "producrIssueId");

                return this;
            }
        }

        public Criteria andProducrIssueIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andProducrIssueIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.ProducrIssueId +
                    " not in", Arrays.asList(values), "producrIssueId");

                return this;
            }
        }

        public Criteria andProducrIssueIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProducrIssueIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andProducrIssueIdBetween(long value1, long value2) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " between",
                value1, value2, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId + " between",
                value1, value2, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId +
                " not between", value1, value2, "producrIssueId");

            return this;
        }

        public Criteria andProducrIssueIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueChangeLogDAO.ProducrIssueId +
                " not between", value1, value2, "producrIssueId");

            return this;
        }

        public Criteria andBeforeChangeStatusIsNull() {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " is null");

            return this;
        }

        public Criteria andBeforeChangeStatusIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " is not null");

            return this;
        }

        public Criteria andBeforeChangeStatusIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " is not null AND " +
                IProductIssueChangeLogDAO.BeforeChangeStatus + " <> ''");

            return this;
        }

        public Criteria andBeforeChangeStatusIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.BeforeChangeStatus +
                " is null OR " + IProductIssueChangeLogDAO.BeforeChangeStatus +
                " = '')");

            return this;
        }

        public Criteria andBeforeChangeStatusEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " = ",
                value, "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.BeforeChangeStatus);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andBeforeChangeStatusEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andBeforeChangeStatusNotEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " <>",
                value, "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " is null OR " + IProductIssueChangeLogDAO.BeforeChangeStatus +
                " <>", value, "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.BeforeChangeStatus);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andBeforeChangeStatusNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andBeforeChangeStatusGreaterThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " >",
                value, "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.BeforeChangeStatus);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andBeforeChangeStatusGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andBeforeChangeStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " >=",
                value, "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.BeforeChangeStatus);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andBeforeChangeStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andBeforeChangeStatusLessThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " <",
                value, "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.BeforeChangeStatus);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andBeforeChangeStatusLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andBeforeChangeStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " <=",
                value, "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.BeforeChangeStatus);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andBeforeChangeStatusLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andBeforeChangeStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " like", buffer.toString(), "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " not like", buffer.toString(), "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andBeforeChangeStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                    " in", values, "beforeChangeStatus");

                return this;
            }
        }

        public Criteria andBeforeChangeStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andBeforeChangeStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                    " not in", values, "beforeChangeStatus");

                return this;
            }
        }

        public Criteria andBeforeChangeStatusIn(String[] values) {
            if (values.length == 1) {
                return andBeforeChangeStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                    " in", Arrays.asList(values), "beforeChangeStatus");

                return this;
            }
        }

        public Criteria andBeforeChangeStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andBeforeChangeStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                    " not in", Arrays.asList(values), "beforeChangeStatus");

                return this;
            }
        }

        public Criteria andBeforeChangeStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andBeforeChangeStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andBeforeChangeStatusBetween(String value1,
            String value2) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " between", value1, value2, "beforeChangeStatus");

            return this;
        }

        public Criteria andBeforeChangeStatusNotBetween(String value1,
            String value2) {
            addCriterion(IProductIssueChangeLogDAO.BeforeChangeStatus +
                " not between", value1, value2, "beforeChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusIsNull() {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                " is null");

            return this;
        }

        public Criteria andAfterChangeStatusIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                " is not null");

            return this;
        }

        public Criteria andAfterChangeStatusIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                " is not null AND " +
                IProductIssueChangeLogDAO.AfterChangeStatus + " <> ''");

            return this;
        }

        public Criteria andAfterChangeStatusIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.AfterChangeStatus +
                " is null OR " + IProductIssueChangeLogDAO.AfterChangeStatus +
                " = '')");

            return this;
        }

        public Criteria andAfterChangeStatusEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " = ",
                value, "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.AfterChangeStatus);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAfterChangeStatusEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAfterChangeStatusNotEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " <>",
                value, "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                " is null OR " + IProductIssueChangeLogDAO.AfterChangeStatus +
                " <>", value, "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.AfterChangeStatus);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAfterChangeStatusNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAfterChangeStatusGreaterThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " >",
                value, "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.AfterChangeStatus);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAfterChangeStatusGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAfterChangeStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " >=",
                value, "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.AfterChangeStatus);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAfterChangeStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAfterChangeStatusLessThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " <",
                value, "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.AfterChangeStatus);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAfterChangeStatusLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAfterChangeStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " <=",
                value, "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.AfterChangeStatus);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andAfterChangeStatusLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAfterChangeStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " like",
                buffer.toString(), "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                " not like", buffer.toString(), "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andAfterChangeStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                    " in", values, "afterChangeStatus");

                return this;
            }
        }

        public Criteria andAfterChangeStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andAfterChangeStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                    " not in", values, "afterChangeStatus");

                return this;
            }
        }

        public Criteria andAfterChangeStatusIn(String[] values) {
            if (values.length == 1) {
                return andAfterChangeStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                    " in", Arrays.asList(values), "afterChangeStatus");

                return this;
            }
        }

        public Criteria andAfterChangeStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andAfterChangeStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                    " not in", Arrays.asList(values), "afterChangeStatus");

                return this;
            }
        }

        public Criteria andAfterChangeStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andAfterChangeStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andAfterChangeStatusBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                " between", value1, value2, "afterChangeStatus");

            return this;
        }

        public Criteria andAfterChangeStatusNotBetween(String value1,
            String value2) {
            addCriterion(IProductIssueChangeLogDAO.AfterChangeStatus +
                " not between", value1, value2, "afterChangeStatus");

            return this;
        }

        public Criteria andOperatorIdIsNull() {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " is null");

            return this;
        }

        public Criteria andOperatorIdIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " is not null");

            return this;
        }

        public Criteria andOperatorIdIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.OperatorId +
                " is not null AND " + IProductIssueChangeLogDAO.OperatorId +
                " <> ''");

            return this;
        }

        public Criteria andOperatorIdIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.OperatorId +
                " is null OR " + IProductIssueChangeLogDAO.OperatorId +
                " = '')");

            return this;
        }

        public Criteria andOperatorIdEqualTo(long value) {
            return andOperatorIdEqualTo(Long.valueOf(value));
        }

        public Criteria andOperatorIdEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " = ", value,
                "operatorId");

            return this;
        }

        public Criteria andOperatorIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorIdNotEqualTo(long value) {
            return andOperatorIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andOperatorIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " <>", value,
                "operatorId");

            return this;
        }

        public Criteria andOperatorIdNotEqualToOrIsNull(long value) {
            return andOperatorIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andOperatorIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " is null OR " +
                IProductIssueChangeLogDAO.OperatorId + " <>", value,
                "operatorId");

            return this;
        }

        public Criteria andOperatorIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorIdGreaterThan(long value) {
            return andOperatorIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andOperatorIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " >", value,
                "operatorId");

            return this;
        }

        public Criteria andOperatorIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorIdGreaterThanOrEqualTo(long value) {
            return andOperatorIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andOperatorIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " >=", value,
                "operatorId");

            return this;
        }

        public Criteria andOperatorIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorIdLessThan(long value) {
            return andOperatorIdLessThan(Long.valueOf(value));
        }

        public Criteria andOperatorIdLessThan(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " <", value,
                "operatorId");

            return this;
        }

        public Criteria andOperatorIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorIdLessThanOrEqualTo(long value) {
            return andOperatorIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andOperatorIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " <=", value,
                "operatorId");

            return this;
        }

        public Criteria andOperatorIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorIdIn(long[] values) {
            if (values.length == 1) {
                return andOperatorIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorId + " in",
                    values, "operatorId");

                return this;
            }
        }

        public Criteria andOperatorIdNotIn(long[] values) {
            if (values.length == 1) {
                return andOperatorIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorId + " not in",
                    values, "operatorId");

                return this;
            }
        }

        public Criteria andOperatorIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andOperatorIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorId + " in",
                    values, "operatorId");

                return this;
            }
        }

        public Criteria andOperatorIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andOperatorIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorId + " not in",
                    values, "operatorId");

                return this;
            }
        }

        public Criteria andOperatorIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andOperatorIdEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorId + " in",
                    Arrays.asList(values), "operatorId");

                return this;
            }
        }

        public Criteria andOperatorIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andOperatorIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorId + " not in",
                    Arrays.asList(values), "operatorId");

                return this;
            }
        }

        public Criteria andOperatorIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorIdBetween(long value1, long value2) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " between",
                value1, value2, "operatorId");

            return this;
        }

        public Criteria andOperatorIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " between",
                value1, value2, "operatorId");

            return this;
        }

        public Criteria andOperatorIdNotBetween(long value1, long value2) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " not between",
                value1, value2, "operatorId");

            return this;
        }

        public Criteria andOperatorIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductIssueChangeLogDAO.OperatorId + " not between",
                value1, value2, "operatorId");

            return this;
        }

        public Criteria andOperateTimeIsNull() {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " is null");

            return this;
        }

        public Criteria andOperateTimeIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.OperateTime +
                " is not null");

            return this;
        }

        public Criteria andOperateTimeIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.OperateTime +
                " is not null AND " + IProductIssueChangeLogDAO.OperateTime +
                " <> ''");

            return this;
        }

        public Criteria andOperateTimeIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.OperateTime +
                " is null OR " + IProductIssueChangeLogDAO.OperateTime +
                " = '')");

            return this;
        }

        public Criteria andOperateTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " = ", value, "operateTime");

            return this;
        }

        public Criteria andOperateTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperateTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperateTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperateTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " <>", value, "operateTime");

            return this;
        }

        public Criteria andOperateTimeNotEqualToOrIsNull(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " is null OR " + IProductIssueChangeLogDAO.OperateTime + " <>",
                value, "operateTime");

            return this;
        }

        public Criteria andOperateTimeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperateTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperateTimeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperateTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " >", value, "operateTime");

            return this;
        }

        public Criteria andOperateTimeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperateTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperateTimeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperateTimeGreaterThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " >=", value, "operateTime");

            return this;
        }

        public Criteria andOperateTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperateTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperateTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperateTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " <", value, "operateTime");

            return this;
        }

        public Criteria andOperateTimeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperateTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperateTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperateTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " <=", value, "operateTime");

            return this;
        }

        public Criteria andOperateTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperateTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperateTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperateTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andOperateTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                    " in", values, "operateTime");

                return this;
            }
        }

        public Criteria andOperateTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andOperateTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                    " not in", values, "operateTime");

                return this;
            }
        }

        public Criteria andOperateTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andOperateTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                    " in", Arrays.asList(values), "operateTime");

                return this;
            }
        }

        public Criteria andOperateTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andOperateTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                    " not in", Arrays.asList(values), "operateTime");

                return this;
            }
        }

        public Criteria andOperateTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperateTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperateTime + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperateTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " between", value1, value2, "operateTime");

            return this;
        }

        public Criteria andOperateTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductIssueChangeLogDAO.OperateTime +
                " not between", value1, value2, "operateTime");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductIssueChangeLogDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.Status +
                " is not null AND " + IProductIssueChangeLogDAO.Status +
                " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.Status +
                " is null OR " + IProductIssueChangeLogDAO.Status + " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.Status + " = ", value,
                "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Status + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.Status + " <>", value,
                "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueChangeLogDAO.Status + " is null OR " +
                IProductIssueChangeLogDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Status + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.Status + " >", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Status + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.Status + " >=", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Status + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.Status + " <", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Status + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.Status + " <=", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Status + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.Status + " in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.Status + " not in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Status + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.Status + " between", value1,
                value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.Remarks +
                " is not null AND " + IProductIssueChangeLogDAO.Remarks +
                " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.Remarks +
                " is null OR " + IProductIssueChangeLogDAO.Remarks + " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " is null OR " +
                IProductIssueChangeLogDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " >", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " <", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.Remarks + " in", values,
                    "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andOperatorNameIsNull() {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " is null");

            return this;
        }

        public Criteria andOperatorNameIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.OperatorName +
                " is not null");

            return this;
        }

        public Criteria andOperatorNameIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.OperatorName +
                " is not null AND " + IProductIssueChangeLogDAO.OperatorName +
                " <> ''");

            return this;
        }

        public Criteria andOperatorNameIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.OperatorName +
                " is null OR " + IProductIssueChangeLogDAO.OperatorName +
                " = '')");

            return this;
        }

        public Criteria andOperatorNameEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " = ", value,
                "operatorName");

            return this;
        }

        public Criteria andOperatorNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorNameNotEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " <>", value,
                "operatorName");

            return this;
        }

        public Criteria andOperatorNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName +
                " is null OR " + IProductIssueChangeLogDAO.OperatorName +
                " <>", value, "operatorName");

            return this;
        }

        public Criteria andOperatorNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorNameGreaterThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " >", value,
                "operatorName");

            return this;
        }

        public Criteria andOperatorNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " >=", value,
                "operatorName");

            return this;
        }

        public Criteria andOperatorNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorNameLessThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " <", value,
                "operatorName");

            return this;
        }

        public Criteria andOperatorNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorNameLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " <=", value,
                "operatorName");

            return this;
        }

        public Criteria andOperatorNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " like",
                buffer.toString(), "operatorName");

            return this;
        }

        public Criteria andOperatorNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " not like",
                buffer.toString(), "operatorName");

            return this;
        }

        public Criteria andOperatorNameIn(List<String> values) {
            if (values.size() == 1) {
                return andOperatorNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorName + " in",
                    values, "operatorName");

                return this;
            }
        }

        public Criteria andOperatorNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andOperatorNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorName +
                    " not in", values, "operatorName");

                return this;
            }
        }

        public Criteria andOperatorNameIn(String[] values) {
            if (values.length == 1) {
                return andOperatorNameEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorName + " in",
                    Arrays.asList(values), "operatorName");

                return this;
            }
        }

        public Criteria andOperatorNameNotIn(String[] values) {
            if (values.length == 1) {
                return andOperatorNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorName +
                    " not in", Arrays.asList(values), "operatorName");

                return this;
            }
        }

        public Criteria andOperatorNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorNameBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName + " between",
                value1, value2, "operatorName");

            return this;
        }

        public Criteria andOperatorNameNotBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.OperatorName +
                " not between", value1, value2, "operatorName");

            return this;
        }

        public Criteria andOperatorPhotoIsNull() {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " is null");

            return this;
        }

        public Criteria andOperatorPhotoIsNotNull() {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto +
                " is not null");

            return this;
        }

        public Criteria andOperatorPhotoIsNotEmpty() {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto +
                " is not null AND " + IProductIssueChangeLogDAO.OperatorPhoto +
                " <> ''");

            return this;
        }

        public Criteria andOperatorPhotoIsEmpty() {
            addCriterion("(" + IProductIssueChangeLogDAO.OperatorPhoto +
                " is null OR " + IProductIssueChangeLogDAO.OperatorPhoto +
                " = '')");

            return this;
        }

        public Criteria andOperatorPhotoEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " = ",
                value, "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorPhoto);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorPhotoEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorPhotoNotEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " <>",
                value, "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoNotEqualToOrIsNull(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto +
                " is null OR " + IProductIssueChangeLogDAO.OperatorPhoto +
                " <>", value, "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorPhoto);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorPhotoNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorPhotoGreaterThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " >", value,
                "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorPhoto);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorPhotoGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorPhotoGreaterThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " >=",
                value, "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorPhoto);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorPhotoGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorPhotoLessThan(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " <", value,
                "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorPhoto);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorPhotoLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorPhotoLessThanOrEqualTo(String value) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " <=",
                value, "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductIssueChangeLogDAO.OperatorPhoto);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperatorPhotoLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorPhotoLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " like",
                buffer.toString(), "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " not like",
                buffer.toString(), "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoIn(List<String> values) {
            if (values.size() == 1) {
                return andOperatorPhotoEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " in",
                    values, "operatorPhoto");

                return this;
            }
        }

        public Criteria andOperatorPhotoNotIn(List<String> values) {
            if (values.size() == 1) {
                return andOperatorPhotoNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorPhoto +
                    " not in", values, "operatorPhoto");

                return this;
            }
        }

        public Criteria andOperatorPhotoIn(String[] values) {
            if (values.length == 1) {
                return andOperatorPhotoEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " in",
                    Arrays.asList(values), "operatorPhoto");

                return this;
            }
        }

        public Criteria andOperatorPhotoNotIn(String[] values) {
            if (values.length == 1) {
                return andOperatorPhotoNotEqualTo(values[0]);
            } else {
                addCriterion(IProductIssueChangeLogDAO.OperatorPhoto +
                    " not in", Arrays.asList(values), "operatorPhoto");

                return this;
            }
        }

        public Criteria andOperatorPhotoIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorPhotoNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperatorPhotoBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto + " between",
                value1, value2, "operatorPhoto");

            return this;
        }

        public Criteria andOperatorPhotoNotBetween(String value1, String value2) {
            addCriterion(IProductIssueChangeLogDAO.OperatorPhoto +
                " not between", value1, value2, "operatorPhoto");

            return this;
        }
    }
}
